﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.Composition;
using ShredTheLog.Api;

namespace ShredTheLog.Themes
{
    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class BureauBlackPart : ISkinPart
    {
        public string ThemeID { get { return BureauBlackTheme.IDString; } }
        public string PartID { get { return "MS"; } }
        public Uri PartUri { get { return Helper.GetThemeUri("MS/BureauBlack.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class BureauBluePart : ISkinPart
    {
        public string ThemeID { get { return BureauBlueTheme.IDString; } }
        public string PartID { get { return "MS"; } }
        public Uri PartUri { get { return Helper.GetThemeUri("MS/BureauBlue.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class ExpressionDarkPart : ISkinPart
    {
        public string ThemeID { get { return ExpressionDarkTheme.IDString; } }
        public string PartID { get { return "MS"; } }
        public Uri PartUri { get { return Helper.GetThemeUri("MS/ExpressionDark.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class ExpressionLightPart : ISkinPart
    {
        public string ThemeID { get { return ExpressionLightTheme.IDString; } }
        public string PartID { get { return "MS"; } }
        public Uri PartUri { get { return Helper.GetThemeUri("MS/ExpressionLight.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class ShinyBluePart : ISkinPart
    {
        public string ThemeID { get { return ShinyBlueTheme.IDString; } }
        public string PartID { get { return "MS"; } }
        public Uri PartUri { get { return Helper.GetThemeUri("MS/ShinyBlue.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class ShinyRedPart : ISkinPart
    {
        public string ThemeID { get { return ShinyRedTheme.IDString; } }
        public string PartID { get { return "MS"; } }
        public Uri PartUri { get { return Helper.GetThemeUri("MS/ShinyRed.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class WhistlerBluePart : ISkinPart
    {
        public string ThemeID { get { return WhistlerBlueTheme.IDString; } }
        public string PartID { get { return "MS"; } }
        public Uri PartUri { get { return Helper.GetThemeUri("MS/WhistlerBlue.xaml"); } }
    }
}
